package com.yootoo.extpmml;

import ml.dmlc.xgboost4j.java.Booster;
import ml.dmlc.xgboost4j.java.DMatrix;
import ml.dmlc.xgboost4j.java.XGBoost;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

public class Ext_Fin_V1 {
    public static void main(String[] args) throws Exception {
        // header
        String s1 = "id,age,phone,id_no,live_addr,emer_phone,company_name,mx_courtcase_cnt,mx_dishonest_cnt,mx_idcard_other_names_cnt,mx_idcard_other_mobiles_cnt,mx_idcard_other_mobiles_black_cnt,mx_mobile_other_names_cnt,mx_mobile_other_idcards_cnt,mx_mobile_other_idcards_black_cnt,mx_other_devices_cnt,mx_mobile_other_devices_cnt,mx_idcard_other_devices_cnt,mx_device_other_names_cnt,mx_device_other_mobiles_cnt,mx_device_other_mobiles_black_cnt,mx_device_other_mobiles_cnt.1,mx_device_other_mobiles_black_cnt.1,mx_device_other_idcards_black_cnt,mx_black_mobile_name_in_blacklist,mx_black_idcard_name_in_blacklist,mx_gray_mobile_name_in_blacklist,mx_gray_idcard_name_in_blacklist,mx_fraud_is_hit,mx_fraud_hit_type,xd_is_lastloan_refused,xd_total_loan_count,xd_total_overdue_count,xd_longest_overdue_paid,xd_current_overdue_count,xd_current_overdue_amount,xd_over_due90_contacts_count,xd_longest_overdue_unpaid,xd_last_loan_refuse_reason,xd_last_loan_refuse_time,xd_first_loan_time,xy_loans_score,xy_loans_credibility,xy_loans_count,xy_loans_settle_count,xy_loans_overdue_count,xy_loans_org_count,xy_consfin_org_count,xy_loans_cash_count,xy_latest_one_month,xy_latest_three_month,xy_latest_six_month,xy_history_suc_fee,xy_history_fail_fee,xy_history_suc_minus_fail_num,xy_latest_one_month_suc,xy_latest_one_month_fail,xy_latest_one_month_suc_minus_fail_num,xy_loans_long_time,xy_loans_latest_time,pa_l1wwdcn_t_nums_con,pa_l1wwdcn_t_nums_con_bank,pa_l1wwdcn_t_nums_con_cf,pa_l1wwdcn_t_nums_con_f,pa_l1wwdcn_t_nums_con_if,pa_l1wwdcn_t_nums_con_org,pa_l1wwdcn_t_times_in,pa_l1wwdcn_t_times_out,pa_l2wwdcn_t_nums_con_org_type,pa_l3wwdcn_t_nums_con_if,pa_l1mwdcn_t_nums_con,pa_l1mwdcn_t_nums_con_bank,pa_l1mwdcn_t_nums_con_cf,pa_l1mwdcn_t_nums_con_f,pa_l1mwdcn_t_nums_con_if,pa_l1mwdcn_t_nums_con_org,pa_l1mwdcn_t_times_in,pa_l1mwdcn_t_times_out,pa_l2mwdcn_t_times_in,pa_l2mwdcn_t_nums_in,pa_l2mwdcn_tax_times_in,pa_l2mwdcn_max_times_con,pa_l2mencn_t_tays_con,pa_l3mwdcn_t_nums_con,pa_l3mwdcn_t_nums_con_bank,pa_l3mwdcn_t_nums_con_cf,pa_l3mwdcn_t_nums_con_f,pa_l3mwdcn_t_nums_con_if,pa_l3mencn_t_nums_con_org,pa_l3mwdcn_t_nums_con_org,pa_l3mwdcn_t_times_in,pa_l3mwdcn_t_times_out,pa_l3mwdcn_add_t_nums_in_org,pa_l3mwdcn_max_days_in,pa_l4mwdcn_t_nums_con_org_type,pa_l4mwdcn_t_times_in_non_bank,pa_l4mwdcn_t_dur_con,pa_l4mwdcn_t_times_con,pa_l4mwdcn_t_nums_con_f,pa_l4mwdcn_t_dur_in,pa_l4mwdcn_t_dur_in_max_times,pa_l4mwdcn_t_nums_in_f,pa_l5mwdcn_t_days_con,pa_l5mwdcn_t_dur_in_f,pa_l5mwdcm_t_dur_con,pa_l5mwdcn_t_nums_con_if,pa_allwdcn_t_nums_con,pa_allwdcn_t_nums_con_bank,pa_allwdcn_t_nums_con_cf,pa_allwdcn_t_nums_con_f,pa_allwdcn_t_nums_con_if,pa_allwdcn_t_nums_con_org,pa_allwdcn_t_times_in,pa_allwdcn_t_times_out,pa_allwdcn_t_dur_in_f,pa_allwdcm_max_org_type_in,pa_alldtcnwk_adur,pa_allwdcn_adur,pa_l1mdtcn_adur,pa_l1mwdcn_adur,pa_allmncnrt_nums_con,pa_l1wwdcnrt_nums_con,pa_l2mwdcn_nums_con,pa_l2wwdcnwk_nums_con,pa_allwdcn_a_dur_one_nums,pa_l4mwdcn_a_dur_one_nums,pa_l6mwdcn_a_dur_one_nums,pa_l1mdtcnwk_rank_count,pa_l1wdtcnrt_rank_count,pa_l2mdtcn_rank_count,pa_l3wwdcnwk_rank_count,pa_l1mevcnrt_sepcial_hour_count,pa_l1mmncnwk_sepcial_hour_count,pa_l1wevcn_sepcial_hour_count,pa_l1wwdcnrt_sepcial_hour_count,pa_l2mevcn_sepcial_hour_count,pa_l2mevcnrt_sepcial_hour_count,pa_l2mwdcn_sepcial_hour_count,pa_l3mevcn_sepcial_hour_count,pa_l3mwdcnrt_sepcial_hour_count,pa_l6mwdcnwk_sepcial_hour_count,pa_l2mdtcn_active_days_count,pa_l2wwdcn_active_days_count,pa_l3mwdcnrt_active_days_count,pa_l2wdtcn_max_times_in,pa_l2wevcn_max_days_of_one_number_count,pa_l3mwdcnrt_max_days_of_one_number_count,pa_l3wwdcn_max_days_of_one_number_count,pa_l2wwdcn_a_dur_one_nums_in,pa_l2wwdcn_t_times_in,pa_l3mwdcn_a_dur_in,pa_l1mevcnrt_t_dur,pa_l1mmncnwk_t_dur,pa_l2mevcn_t_dur,pa_l2mwdcnrt_t_dur,pa_l3mevcn_t_dur,pa_l3mwdcnrt_t_dur,pa_l6mwdcnwk_t_dur,pa_l4mwdcn_t_dur,pa_l6mwdcn_min_ttv_days_in,pa_l6mwdcn_t_dur_f,pa_all25acfri_dur,pa_allwdacwk_dur,pa_all25ac_times,pa_allwdacwk_dur.1,pa_all25ac_times.1,create_time,last_modify_time,is_repay,penalty_day,call_cnt_item_6m,ins_fin_call_time_3m,call_duration_detail_3m_afternoon_dialed_cnt,call_cnt_avg_item_6m,call_duration_detail_6m_forenoon_uniq_num_cnt,agency_call_cnt_6m,mobile_silence_3m,loan_call_cnt_1m,peer_num_cnt_item_1m,credit_card_call_time_1m,express_call_dialed_time_6m,daytime_cnt_item_6m,call_duration_detail_6m_midnight_total_cnt,peer_loc_cnt_item_1m,cnt_5min_10min_item_6m,call_duration_detail_3m_afternoon_total_time,call_duration_detail_3m_afternoon_dial_time,nuisance_call_cnt_3m,express_avg_call_time_3m,car_firm_avg_call_dial_time_6m,express_call_time_3m,night_cnt_item_1m,bank_call_dialed_cnt_6m,power_off_day_item_3m,sms_cnt_item_1m,call_duration_detail_6m_dusk_dialed_time,night_time_avg_item_3m,agency_call_dialed_cnt_3m,voice_fee_avg_item_3m,call_duration_detail_3m_forenoon_total_cnt,nuisance_avg_call_dialed_cnt_3m,call_time_avg_item_6m,inter_peer_num_3m,express_avg_call_dialed_cnt_6m,agency_call_dial_time_6m,call_duration_detail_3m_evening_dial_cnt,power_off_day_avg_item_3m,call_duration_detail_6m_midnight_dialed_cnt,nuisance_avg_call_dial_time_6m,call_duration_detail_3m_noon_total_time,call_duration_detail_6m_afternoon_uniq_num_cnt,call_duration_detail_3m_afternoon_total_cnt,car_firm_call_time_6m,call_duration_detail_6m_morning_dial_cnt,loan_call_cnt_3m,bank_call_dialed_cnt_3m,voice_fee_avg_item_6m,ins_fin_call_time_1m,peer_num_cnt_item_3m,inter_peer_num_6m,ins_fin_call_dialed_time_1m,credit_card_call_time_3m,agency_call_dial_time_3m,nuisance_call_cnt_1m,loan_call_dialed_cnt_6m,contacts_router_cnt,total_fee_item_1m,call_duration_detail_6m_noon_dialed_time,express_call_time_1m,call_cnt_avg_item_3m,night_cnt_item_3m,remote_time_avg_item_6m,fraud_call_time_1m,car_firm_call_time_3m,bank_avg_call_time_6m,call_cnt_item_3m,night_cnt_avg_item_3m,nuisance_call_dial_time_6m,car_firm_call_dialed_time_3m,call_duration_detail_3m_daybreak_total_time,power_off_day_item_6m,call_duration_detail_3m_midnight_dial_time,call_duration_detail_6m_daybreak_total_cnt,agency_call_time_6m,call_time_avg_item_3m,ins_fin_call_dialed_time_3m,fraud_call_time_6m,bank_avg_call_time_3m,call_duration_detail_6m_noon_total_time,call_duration_detail_6m_evening_uniq_num_cnt,remote_time_avg_item_3m,vas_fee_avg_item_3m,car_firm_call_dial_time_6m,carrier_call_dialed_cnt_6m,loan_call_cnt_6m,agency_call_time_1m,call_duration_detail_6m_morning_total_cnt,total_fee_avg_item_6m,cnt_1min_5min_item_6m,max_single_time_item_6m,nuisance_call_cnt_6m,net_fee_avg_item_3m,call_time_item_1m,call_duration_detail_3m_daybreak_dialed_time,credit_card_avg_call_dial_time_3m,agency_call_dialed_time_1m,call_duration_detail_3m_dusk_dial_cnt,peer_num_cnt_item_6m,daytime_cnt_item_1m,call_duration_detail_3m_daybreak_total_cnt,ins_fin_call_cnt_6m,call_duration_detail_6m_dusk_dial_cnt,recharge_amount_item_1m,agency_avg_call_dialed_time_6m,sms_cnt_item_6m,call_duration_detail_6m_daybreak_dial_time,call_duration_detail_6m_morning_dialed_time,arrearage_risk_6m,nuisance_call_dial_time_3m,power_off_day_item_1m,agency_call_time_3m,voice_fee_item_1m,call_duration_detail_6m_evening_dialed_time,sms_cnt_item_3m,max_power_on_day_item_6m,call_duration_detail_3m_noon_total_cnt,loan_avg_call_dialed_time_3m,sms_fee_avg_item_6m,bank_call_dial_cnt_1m,call_duration_detail_3m_noon_dialed_cnt,call_duration_detail_3m_forenoon_uniq_num_cnt,credit_card_call_time_6m,min_single_time_item_6m,max_single_time_item_3m,express_avg_call_dial_time_6m,daytime_cnt_avg_item_6m,agency_call_dialed_time_3m,contacts_class1_cnt,good_friend_num_6m,agency_call_dialed_cnt_1m,ins_fin_call_dialed_time_6m,net_used_avg_item_6m,ins_fin_call_time_6m,call_duration_detail_6m_noon_uniq_num_cnt,nuisance_call_dial_time_1m,call_duration_detail_6m_dusk_dialed_cnt,vas_fee_avg_item_6m,recharge_amount_item_3m,loan_call_time_3m,nuisance_call_dialed_time_6m,phone_gray_score,continue_recharge_month_cnt_item_6m,call_duration_detail_6m_afternoon_dialed_time,call_duration_detail_6m_midnight_dial_cnt,cnt_1min_5min_avg_item_3m,extra_fee_item_3m,call_duration_detail_6m_morning_dial_time,carrier_call_cnt_6m,call_duration_detail_6m_evening_dialed_cnt,call_duration_detail_6m_daybreak_dialed_cnt,call_duration_detail_3m_forenoon_dialed_time,credit_card_avg_call_dial_time_6m,nuisance_call_dialed_cnt_1m,express_call_cnt_3m,no_dial_day_avg_item_3m,ins_fin_call_dialed_cnt_6m,net_fee_avg_item_6m,cnt_1min_5min_item_3m,total_fee_avg_item_3m,loan_call_dial_time_3m,loan_call_dial_cnt_6m,bank_call_time_1m,sms_cnt_avg_item_6m,loan_avg_call_dial_time_6m,credit_card_avg_call_time_3m,bank_call_dialed_time_1m,unpaid_month_cnt_item_6m,max_single_time_item_1m,cnt_10min_over_item_6m,loan_call_time_1m,ins_fin_call_dial_cnt_3m,recharge_amount_item_6m,good_friend_num_3m,special_service_call_time_6m,sms_cnt_avg_item_3m,daytime_time_item_6m,peer_num_cnt_avg_item_3m,express_call_cnt_1m,call_duration_detail_3m_daybreak_dial_time,min_single_time_item_3m,call_duration_detail_3m_morning_dial_time,car_firm_call_dial_time_3m,cnt_5min_10min_item_1m,min_single_time_item_1m,call_duration_detail_3m_noon_uniq_num_cnt,sms_fee_avg_item_3m,agency_call_dial_cnt_6m,dial_cnt_avg_item_3m,nuisance_call_dialed_cnt_3m,carrier_avg_call_dialed_time_6m,no_call_day_item_1m,contacts_class1_blacklist_cnt,extra_fee_item_1m,loan_avg_call_dial_time_3m,110_call_time_6m,net_used_item_3m,lawyer_call_dialed_time_6m,bank_avg_call_dialed_time_6m,loan_call_dial_time_6m,call_duration_detail_3m_afternoon_dial_cnt,sms_fee_item_6m,total_fee_item_3m,call_duration_detail_3m_forenoon_dial_time,net_fee_item_1m,nuisance_call_dialed_time_1m,call_duration_detail_3m_midnight_total_time,bank_call_dialed_time_6m,age.1,call_duration_detail_3m_midnight_total_cnt,no_dial_day_item_6m,bank_call_time_6m,night_cnt_avg_item_6m,call_duration_detail_3m_forenoon_dial_cnt,special_service_call_time_1m,bank_avg_call_dial_time_6m,cnt_10min_over_item_3m,cnt_1min_5min_avg_item_6m,night_cnt_item_6m,net_used_item_1m,peer_loc_cnt_item_6m,call_duration_detail_3m_forenoon_total_time,credit_card_call_cnt_3m,ins_fin_call_dialed_cnt_3m,cnt_5min_10min_item_3m,carrier_call_cnt_3m,call_duration_detail_3m_dusk_uniq_num_cnt,contacts_class2_blacklist_cnt,car_firm_call_time_1m,agency_call_cnt_3m,loan_call_dialed_cnt_1m,dial_cnt_item_6m,carrier_avg_call_dialed_time_3m,agency_avg_call_time_6m,call_duration_detail_3m_morning_dialed_time,call_duration_detail_3m_morning_total_cnt,dial_cnt_avg_item_6m,contact_loan_score,call_duration_detail_3m_afternoon_dialed_time,net_fee_item_3m,call_duration_detail_3m_midnight_dialed_time,call_duration_detail_6m_afternoon_dialed_cnt,peer_loc_cnt_item_3m,bank_avg_call_dialed_time_3m,unpaid_month_cnt_item_3m,net_used_item_6m,credit_card_call_cnt_6m,call_duration_detail_3m_midnight_dial_cnt,call_duration_detail_3m_dusk_total_cnt,110_call_time_3m,no_dial_day_item_3m,loan_call_time_6m,special_service_call_time_3m,dial_cnt_item_3m,loan_call_dialed_cnt_3m,credit_card_avg_call_time_6m,nuisance_call_dialed_time_3m,express_call_time_6m,cnt_1min_5min_item_1m,credit_card_call_dialed_time_6m,is_city_match_friend_city_center_3m,cnt_10min_over_item_1m,call_duration_detail_3m_evening_dial_time,ins_fin_call_dialed_cnt_1m,carrier_call_cnt_1m,agency_call_cnt_1m,total_fee_item_6m,bank_call_time_3m,call_duration_detail_6m_forenoon_total_time,call_duration_detail_3m_morning_uniq_num_cnt,bank_call_dialed_time_3m,credit_card_call_cnt_1m,night_time_item_3m,call_duration_detail_6m_forenoon_dial_cnt,call_duration_detail_3m_dusk_total_time,express_avg_call_dialed_time_3m,call_duration_detail_3m_morning_dial_cnt,call_duration_detail_3m_forenoon_dialed_cnt,bank_call_cnt_1m,carrier_call_dial_time_6m,loan_call_dialed_time_1m,call_duration_detail_6m_midnight_total_time,credit_card_avg_call_cnt_3m,call_duration_detail_3m_daybreak_dial_cnt,local_time_avg_item_3m,sms_fee_item_3m,net_fee_item_6m,call_duration_detail_6m_midnight_dialed_time,no_dial_day_item_1m,friend_num_6m,max_single_recharge_item_1m,express_call_cnt_6m,ins_fin_avg_call_time_6m,car_firm_call_cnt_6m,120_call_time_6m,call_duration_detail_3m_evening_total_time,call_duration_detail_6m_morning_dialed_cnt,ins_fin_avg_call_dialed_time_3m,remote_time_item_1m,credit_card_call_dialed_time_3m,credit_card_call_dial_cnt_6m,agency_avg_call_time_3m,call_duration_detail_3m_evening_total_cnt,call_duration_detail_6m_noon_dial_cnt,live_month_cnt_item_6m,loan_call_dialed_time_3m,ins_fin_avg_call_time_3m,peer_loc_cnt_avg_item_3m,dial_time_item_6m,dial_cnt_item_1m,call_duration_detail_6m_forenoon_dialed_cnt,fraud_call_dialed_time_6m,call_duration_detail_6m_daybreak_total_time,dial_time_avg_item_6m,cnt_5min_10min_avg_item_6m,call_duration_detail_6m_afternoon_total_cnt,credit_card_call_dial_cnt_3m,night_time_item_6m,max_single_recharge_item_3m,call_duration_detail_6m_morning_total_time,call_duration_detail_6m_afternoon_dial_cnt,nuisance_call_dialed_cnt_6m,call_duration_detail_6m_evening_dial_time,peer_loc_cnt_avg_item_6m,call_duration_detail_3m_noon_dial_time,credit_card_call_dialed_time_1m,bank_avg_call_dial_time_3m,peer_num_cnt_avg_item_6m,cnt_1min_within_item_6m,nuisance_avg_call_dialed_time_6m,no_call_day_item_6m,vas_fee_item_6m,cnt_5min_10min_avg_item_3m,ins_fin_call_dial_time_6m,call_duration_detail_6m_afternoon_total_time,no_call_day_avg_item_6m,remote_cnt_avg_item_6m,daytime_time_item_3m,nuisance_avg_call_cnt_3m,gender,call_duration_detail_3m_daybreak_uniq_num_cnt,remote_cnt_item_6m,ins_fin_avg_call_dialed_time_6m,loan_call_dialed_time_6m,car_firm_call_dialed_cnt_6m,continue_power_off_cnt_item_6m,dial_time_avg_item_3m,call_duration_detail_3m_morning_dialed_cnt,dial_time_item_3m,bank_call_dial_cnt_6m,call_duration_detail_6m_dusk_uniq_num_cnt,call_duration_detail_6m_evening_total_cnt,call_duration_detail_6m_midnight_uniq_num_cnt,nuisance_call_dial_cnt_6m,no_dial_day_avg_item_6m,night_time_item_1m,loan_call_dial_time_1m,extra_fee_item_6m,daytime_time_item_1m,call_duration_detail_6m_dusk_total_cnt,110_call_cnt_3m,call_day_item_1m,express_avg_call_dialed_time_6m,cnt_1min_within_avg_item_6m,ins_fin_call_dial_cnt_6m,call_duration_detail_6m_afternoon_dial_time,no_call_day_item_3m,sms_fee_item_1m,bank_call_cnt_3m,bank_call_dial_cnt_3m,call_duration_detail_3m_dusk_dialed_cnt,call_duration_detail_3m_evening_uniq_num_cnt,cnt_1min_within_item_3m,no_call_day_avg_item_3m,express_call_dial_time_6m,dial_time_item_1m,remote_cnt_avg_item_3m,credit_card_call_dial_time_1m,local_time_item_3m,local_cnt_avg_item_3m,extra_fee_avg_item_3m,loan_call_dial_cnt_1m,express_call_dialed_cnt_1m,contacts_router_ratio,call_duration_detail_3m_afternoon_uniq_num_cnt,credit_card_avg_call_dialed_time_3m,searched_org_cnt,bank_call_dial_time_3m,call_duration_detail_6m_midnight_dial_time,agency_avg_call_dialed_time_3m,nuisance_call_time_1m,nuisance_avg_call_dialed_time_3m,ins_fin_call_cnt_3m,carrier_avg_call_time_6m,call_duration_detail_6m_forenoon_dialed_time,call_duration_detail_3m_midnight_dialed_cnt,agency_avg_call_dial_time_3m,carrier_call_time_6m,cnt_1min_within_item_1m,remote_cnt_item_3m,cnt_10min_over_avg_item_3m,credit_card_call_dialed_cnt_3m,ins_fin_call_dial_time_3m,voice_fee_item_6m,vas_fee_item_3m,call_duration_detail_6m_noon_dial_time,nuisance_call_dial_cnt_3m,loan_avg_call_dialed_time_6m,local_cnt_item_6m,call_duration_detail_3m_dusk_dialed_time,call_duration_detail_6m_noon_dialed_cnt,carrier_call_dialed_time_6m,car_firm_call_cnt_1m,carrier_call_dialed_cnt_3m,credit_card_call_dial_time_3m,max_power_on_day_item_3m,continue_power_off_cnt_item_3m,loan_call_dial_cnt_3m,remote_time_item_6m,carrier_avg_call_time_3m,loan_avg_call_time_3m,credit_card_call_dialed_cnt_6m,express_call_dialed_cnt_3m,express_call_dial_time_3m,bank_call_dial_time_1m,call_duration_detail_6m_morning_uniq_num_cnt,local_cnt_item_3m,voice_fee_item_3m,bank_call_cnt_6m,car_firm_call_dial_cnt_3m,railway_airway_call_time_6m,cnt_1min_within_avg_item_3m,net_used_avg_item_3m,nuisance_call_time_3m,vas_fee_item_1m,credit_card_avg_call_dialed_time_6m,call_duration_detail_6m_evening_dial_cnt,agency_call_dialed_time_6m,express_call_dial_cnt_6m,ins_fin_call_dial_time_1m,nuisance_call_dial_cnt_1m,remote_cnt_item_1m,call_cnt_item_1m,recharge_amount_avg_item_6m,cnt_10min_over_avg_item_6m,call_time_item_3m,nuisance_call_time_6m,express_call_dial_time_1m,express_avg_call_time_6m,max_power_on_day_item_1m,credit_card_call_dial_cnt_1m,car_firm_call_cnt_3m,express_call_dialed_time_1m,call_duration_detail_6m_daybreak_uniq_num_cnt,call_duration_detail_3m_midnight_uniq_num_cnt,call_duration_detail_6m_evening_total_time,call_duration_detail_6m_forenoon_dial_time,local_cnt_item_1m,express_call_dial_cnt_1m,carrier_call_time_1m,friend_num_3m,carrier_call_dialed_time_1m,nuisance_avg_call_time_6m,call_duration_detail_6m_noon_total_cnt,local_time_item_6m,local_time_avg_item_6m,agency_call_dial_time_1m,power_off_day_avg_item_6m,credit_card_call_dial_time_6m,local_cnt_avg_item_6m,agency_call_dialed_cnt_6m,call_duration_detail_3m_dusk_dial_time,call_duration_detail_6m_daybreak_dial_cnt,bank_call_dial_time_6m,bank_call_dialed_cnt_1m,car_firm_call_dialed_time_6m,night_time_avg_item_6m,extra_fee_avg_item_6m,call_duration_detail_6m_dusk_total_time,call_duration_detail_3m_noon_dialed_time,local_time_item_1m,call_duration_detail_3m_morning_total_time,car_firm_call_dial_cnt_6m,call_duration_detail_3m_evening_dialed_cnt,express_call_dialed_time_3m,express_call_dial_cnt_3m,carrier_call_dialed_time_3m,call_duration_detail_6m_forenoon_total_cnt,call_duration_detail_3m_noon_dial_cnt,carrier_call_time_3m,max_single_recharge_item_6m,call_duration_detail_6m_dusk_dial_time,remote_time_item_3m,call_duration_detail_3m_evening_dialed_time,call_time_item_6m,ins_fin_call_cnt_1m,loan_avg_call_time_6m,recharge_amount_avg_item_3m,loan_avg_call_cnt_3m,call_duration_detail_3m_daybreak_dialed_cnt,credit_card_call_dialed_cnt_1m,express_call_dialed_cnt_6m,nuisance_avg_call_time_3m,call_duration_detail_6m_daybreak_dialed_time,data_from,predict_score" + ",end_column";
        // values
        String s2 = "1003,29,18716333900,652901198903230419,阿克苏地区阿克苏市大型网套加工店,15899360685,祥云汽车有限公司,0,0,0,1,0,0,0,0,2,2,1,0,0,0,0,0,0,0,0,0,0,0,-99999,False,0,0,-99999,0,0,0,-99999,-99999,-99999,-99999,610,72,1,1,0,1,0,1,0,1,1,3,0,3,1,0,1,32,2019-01-19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2019-02-20 17:24:06,2019-02-20 17:24:06,-99999,-99999,514.0,608.0,64.0,85.67,46.0,0.0,3.0,3.0,68.0,61.0,0.0,507.0,6.0,24.0,9.0,5910.0,1710.0,3.0,0.0,0.0,0.0,0.0,1.0,32.0,114.0,4506.0,0.0,0.0,20.0,31.0,1.0,7629.0,11.0,0.0,0.0,4.0,10.67,5.0,0.0,3050.0,85.0,85.0,0.0,9.0,7.0,1.0,244.0,608.0,116.0,27.0,608.0,61.0,0.0,2.0,5.0,1.0,6450.0,4309.0,0.0,68.67,0.0,7629.0,0.0,0.0,138.0,206.0,0.0,0.0,0.0,0.0,51.0,0.0,2.0,0.0,5074.0,608.0,0.0,275.0,6515.0,28.0,5074.0,100.0,0.0,0.0,7.0,0.0,20.0,5841.0,137.0,6757.0,4.0,0.0,6180.0,0.0,14.0,0.0,10.0,153.0,107.0,0.0,1.0,28.0,14000.0,0.0,126.0,0.0,586.0,0.0,0.0,6.0,0.0,10.0,2266.0,120.0,23.0,43.0,644.0,197.0,6.0,34.0,28.0,61.0,1.0,1445.0,0.0,84.5,0.0,89.0,9.0,0.0,608.0,20480.0,608.0,47.0,0.0,43.0,67.0,24000.0,2271.0,329.0,77.0,6.0,7748.0,1.0,16.67,0.0,283.0,0.0,51.0,2.0,1726.0,7.0,2.0,0.0,22.67,1.0,0.0,50.0,5807.0,338.0,2.0,759.0,21.0,56.0,20.0,18.0,0.0,641.0,13.0,491.0,0.0,49000.0,1.0,0.0,40.0,45405.0,38.67,0.0,0.0,1.0,0.0,0.0,1.0,1.0,32.0,387.0,0.0,15.0,3.0,0.0,6.0,0.0,0.0,113.0,0.0,122880.0,0.0,3.0,338.0,21.0,1180.0,17420.0,8.0,0.0,142.0,0.0,18.0,29.0,0.0,115.0,825.0,1.17,1.0,0.0,135.0,6.0,22.83,7.0,89088.0,37.0,1734.0,2.0,1.0,1.0,0.0,17.0,10.0,0.0,0.0,1.0,167.0,0.0,0.0,106.0,3.0,27.83,2.0,4200.0,0.0,0.0,117.0,32.0,6.0,0.0,122880.0,2.0,0.0,27.0,0.0,68.0,2271.0,0.0,45.0,5.0,10.0,319.0,0.0,19.0,18.0,0.0,2.0,938.0,1.0,0.0,0.0,35046.0,825.0,5653.0,2.0,18.0,2.0,0.0,17.0,3020.0,0.0,0.0,30.0,7.0,0.0,153.0,322.0,0.67,0.0,0.0,1160.0,0.0,292.0,16.0,153.0,9990.0,0.0,101.0,0.0,0.0,1402.0,11.0,203.0,6180.0,18.0,1.0,0.0,17.0,26.0,0.0,1933.0,203.0,10.67,21839.0,35.0,55.0,0.0,720.0,3640.0,1.5,171.0,1.0,370.0,9990.0,869.0,54.0,4.0,2748.0,6.17,1240.0,18.0,269.0,25.5,355.0,55.0,54.0,400.0,0.33,0.0,12122.0,9.0,85.67,15222.0,1.0,0.0,0.0,514.0,101.0,1933.0,0.0,2.0,1657.0,3.0,4970.0,7.0,32.0,83.0,2.0,0.0,19.17,0.0,338.0,0.0,6180.0,71.0,0.0,24.0,0.0,59.17,0.0,4374.0,34.0,1040.0,8.0,7.0,17.0,11.0,149.0,11.33,0.0,2949.0,68.67,43.0,0.0,0.0,0.0,2.0,0.0,0.01,64.0,6.0,21.0,807.0,30.0,0.0,142.0,106.0,1.0,0.0,3509.0,0.0,0.0,0.0,85.0,206.0,2.0,1.0,0.0,1466.0,300.0,2206.0,0.0,322.0,0.0,1946.0,63.0,0.0,0.0,0.0,43.0,23.0,2.0,2.0,45775.0,0.0,757.0,1.0,0.0,0.0,741.0,8.0,0.0,60.0,8.0,0.0,0.0,49.67,40960.0,319.0,100.0,3.0,32.0,0.0,0.0,0.0,0.0,107.0,107.0,8167.0,2.17,15222.0,329.0,0.0,0.0,13.0,1.0,0.0,0.0,2.0,0.0,5014.0,2144.0,0.0,0.0,0.0,116.0,0.0,55.0,89.0,0.0,0.0,0.0,8.5,43.0,0.0,0.0,1074.0,0.0,807.0,1.0,0.0,62.0,0.0,14560.0,1810.0,0.0,106.0,0.0,13.0,0.0,0.0,0.0,72.0,9.0,0.0,9990.0,10054.0,15222.0,464.0,45775.0,1.0,379.0,8000.0,2.33,0.0,1.0,0.0,106.0,720.0,xiaozhu,0.4590744" + ",end_column";

        String[] arr1 = s1.split(",");
        String[] arr2 = s2.split(",");
        System.out.println(arr1.length);
        System.out.println(arr2.length);
        StringBuffer stringBuffer = new StringBuffer();
        for (int i = 0; i < arr1.length; ++i) {
            stringBuffer.append("\"" + arr1[i] + "\":\"" + arr2[i] + "\"").append(",");
        }
        stringBuffer.append("endendedn");
        System.out.println("{" + stringBuffer.toString().replace(",endendedn", "") + "}");
        Map<String, Object> naiveFeatures = new HashMap<>();
        for (int i = 0; i < arr1.length; ++i) {
            naiveFeatures.put(arr1[i], arr2[i]);
        }

        System.out.println(naiveFeatures.get("predict_score"));

        // start
        String[] featureNameArr = getFeatureNames();

        HashMap<String, Float> hashMap = getCleanedFeatures(naiveFeatures);
        System.out.println(hashMap.toString());

        System.out.println(Arrays.toString(getFeaturesFromMap(hashMap, featureNameArr)));

        float[] cleanedFeatures = getFeaturesFromMap(hashMap, featureNameArr);

        stringBuffer = new StringBuffer();
        for (int i = 0; i < cleanedFeatures.length; ++i) {
            stringBuffer.append("\"" + featureNameArr[i] + "\":\"" + cleanedFeatures[i] + "\"").append(",");
        }
        stringBuffer.append("endendedn");
        System.out.println("{" + stringBuffer.toString().replace(",endendedn", "") + "}");
        stringBuffer = new StringBuffer();
        for (int i = 0; i < featureNameArr.length; ++i) {
            stringBuffer.append(featureNameArr[i]).append(",");
        }
        stringBuffer.append("endendedn");
        System.out.println(stringBuffer.toString().replace(",endendedn", ""));

        int colSize = cleanedFeatures.length;
        DMatrix matrix = new DMatrix(cleanedFeatures, 1, colSize, -9999999f);
        Booster boosterModel = XGBoost.loadModel("/Users/yootoo/workspace/osc/extpmml/extpmml/src/test/resources/ext_fin_v1.model");
        float[] scoreArray = boosterModel.predict(matrix)[0];
        float score = scoreArray[0];
        System.out.println(score);
    }

    public static HashMap<String, Float> getCleanedFeatures(Map<String, Object> naiveFeatures) {
        HashMap<String, Float> hashMap = new HashMap<>(600);

        for (Map.Entry<String, Object> map : naiveFeatures.entrySet()) {
            String key = map.getKey();
            Object object = map.getValue();
            String s = object.toString();

            Float f1 = -99999f;
            try {
                f1 = Float.parseFloat(s);
            } catch (Exception e) {
                //
            }
            hashMap.put(key, f1);
        }

        return hashMap;
    }

    public static float[] getFeaturesFromMap(HashMap<String, Float> hashMap, String[] featureNames) {
        float[] bars = new float[featureNames.length];
        for (int i = 0; i < featureNames.length; ++i) {
            bars[i] = hashMap.get(featureNames[i]);
        }
        return bars;
    }

    public static String[] getFeatureNames() {
        String[] arr = new String[]{
                "age","mx_courtcase_cnt","mx_dishonest_cnt","mx_idcard_other_names_cnt","mx_idcard_other_mobiles_cnt","mx_idcard_other_mobiles_black_cnt","mx_mobile_other_names_cnt","mx_mobile_other_idcards_cnt","mx_mobile_other_idcards_black_cnt","mx_other_devices_cnt","mx_mobile_other_devices_cnt","mx_idcard_other_devices_cnt","mx_device_other_names_cnt","mx_device_other_mobiles_cnt","mx_device_other_mobiles_black_cnt","mx_device_other_mobiles_cnt.1","mx_device_other_mobiles_black_cnt.1","mx_device_other_idcards_black_cnt","mx_black_mobile_name_in_blacklist","mx_black_idcard_name_in_blacklist","mx_gray_mobile_name_in_blacklist","mx_gray_idcard_name_in_blacklist","mx_fraud_is_hit","xd_total_loan_count","xd_total_overdue_count","xd_current_overdue_count","xd_current_overdue_amount","xd_over_due90_contacts_count","xd_last_loan_refuse_reason","xd_last_loan_refuse_time","xy_loans_score","xy_loans_credibility","xy_loans_count","xy_loans_settle_count","xy_loans_overdue_count","xy_loans_org_count","xy_consfin_org_count","xy_loans_cash_count","xy_latest_one_month","xy_latest_three_month","xy_latest_six_month","xy_history_suc_fee","xy_history_fail_fee","xy_history_suc_minus_fail_num","xy_latest_one_month_suc","xy_latest_one_month_fail","xy_latest_one_month_suc_minus_fail_num","pa_l1wwdcn_t_nums_con","pa_l1wwdcn_t_nums_con_bank","pa_l1wwdcn_t_nums_con_cf","pa_l1wwdcn_t_nums_con_f","pa_l1wwdcn_t_nums_con_if","pa_l1wwdcn_t_nums_con_org","pa_l1wwdcn_t_times_in","pa_l1wwdcn_t_times_out","pa_l2wwdcn_t_nums_con_org_type","pa_l3wwdcn_t_nums_con_if","pa_l1mwdcn_t_nums_con","pa_l1mwdcn_t_nums_con_bank","pa_l1mwdcn_t_nums_con_cf","pa_l1mwdcn_t_nums_con_f","pa_l1mwdcn_t_nums_con_if","pa_l1mwdcn_t_nums_con_org","pa_l1mwdcn_t_times_in","pa_l1mwdcn_t_times_out","pa_l2mwdcn_t_times_in","pa_l2mwdcn_t_nums_in","pa_l2mwdcn_tax_times_in","pa_l2mwdcn_max_times_con","pa_l2mencn_t_tays_con","pa_l3mwdcn_t_nums_con","pa_l3mwdcn_t_nums_con_bank","pa_l3mwdcn_t_nums_con_cf","pa_l3mwdcn_t_nums_con_f","pa_l3mwdcn_t_nums_con_if","pa_l3mencn_t_nums_con_org","pa_l3mwdcn_t_nums_con_org","pa_l3mwdcn_t_times_in","pa_l3mwdcn_t_times_out","pa_l3mwdcn_add_t_nums_in_org","pa_l3mwdcn_max_days_in","pa_l4mwdcn_t_nums_con_org_type","pa_l4mwdcn_t_times_in_non_bank","pa_l4mwdcn_t_dur_con","pa_l4mwdcn_t_times_con","pa_l4mwdcn_t_nums_con_f","pa_l4mwdcn_t_dur_in","pa_l4mwdcn_t_dur_in_max_times","pa_l4mwdcn_t_nums_in_f","pa_l5mwdcn_t_days_con","pa_l5mwdcn_t_dur_in_f","pa_l5mwdcm_t_dur_con","pa_l5mwdcn_t_nums_con_if","pa_allwdcn_t_nums_con","pa_allwdcn_t_nums_con_bank","pa_allwdcn_t_nums_con_cf","pa_allwdcn_t_nums_con_f","pa_allwdcn_t_nums_con_if","pa_allwdcn_t_nums_con_org","pa_allwdcn_t_times_in","pa_allwdcn_t_times_out","pa_allwdcn_t_dur_in_f","pa_allwdcm_max_org_type_in","pa_alldtcnwk_adur","pa_allwdcn_adur","pa_l1mdtcn_adur","pa_l1mwdcn_adur","pa_allmncnrt_nums_con","pa_l1wwdcnrt_nums_con","pa_l2mwdcn_nums_con","pa_l2wwdcnwk_nums_con","pa_allwdcn_a_dur_one_nums","pa_l4mwdcn_a_dur_one_nums","pa_l6mwdcn_a_dur_one_nums","pa_l1mdtcnwk_rank_count","pa_l1wdtcnrt_rank_count","pa_l2mdtcn_rank_count","pa_l3wwdcnwk_rank_count","pa_l1mevcnrt_sepcial_hour_count","pa_l1mmncnwk_sepcial_hour_count","pa_l1wevcn_sepcial_hour_count","pa_l1wwdcnrt_sepcial_hour_count","pa_l2mevcn_sepcial_hour_count","pa_l2mevcnrt_sepcial_hour_count","pa_l2mwdcn_sepcial_hour_count","pa_l3mevcn_sepcial_hour_count","pa_l3mwdcnrt_sepcial_hour_count","pa_l6mwdcnwk_sepcial_hour_count","pa_l2mdtcn_active_days_count","pa_l2wwdcn_active_days_count","pa_l3mwdcnrt_active_days_count","pa_l2wdtcn_max_times_in","pa_l2wevcn_max_days_of_one_number_count","pa_l3mwdcnrt_max_days_of_one_number_count","pa_l3wwdcn_max_days_of_one_number_count","pa_l2wwdcn_a_dur_one_nums_in","pa_l2wwdcn_t_times_in","pa_l3mwdcn_a_dur_in","pa_l1mevcnrt_t_dur","pa_l1mmncnwk_t_dur","pa_l2mevcn_t_dur","pa_l2mwdcnrt_t_dur","pa_l3mevcn_t_dur","pa_l3mwdcnrt_t_dur","pa_l6mwdcnwk_t_dur","pa_l4mwdcn_t_dur","pa_l6mwdcn_min_ttv_days_in","pa_l6mwdcn_t_dur_f","pa_all25acfri_dur","pa_allwdacwk_dur","pa_all25ac_times","pa_allwdacwk_dur.1","pa_all25ac_times.1","call_cnt_item_6m","ins_fin_call_time_3m","call_duration_detail_3m_afternoon_dialed_cnt","call_cnt_avg_item_6m","call_duration_detail_6m_forenoon_uniq_num_cnt","agency_call_cnt_6m","mobile_silence_3m","loan_call_cnt_1m","peer_num_cnt_item_1m","credit_card_call_time_1m","express_call_dialed_time_6m","daytime_cnt_item_6m","call_duration_detail_6m_midnight_total_cnt","peer_loc_cnt_item_1m","cnt_5min_10min_item_6m","call_duration_detail_3m_afternoon_total_time","call_duration_detail_3m_afternoon_dial_time","nuisance_call_cnt_3m","express_avg_call_time_3m","car_firm_avg_call_dial_time_6m","express_call_time_3m","night_cnt_item_1m","bank_call_dialed_cnt_6m","power_off_day_item_3m","sms_cnt_item_1m","call_duration_detail_6m_dusk_dialed_time","night_time_avg_item_3m","agency_call_dialed_cnt_3m","voice_fee_avg_item_3m","call_duration_detail_3m_forenoon_total_cnt","nuisance_avg_call_dialed_cnt_3m","call_time_avg_item_6m","inter_peer_num_3m","express_avg_call_dialed_cnt_6m","agency_call_dial_time_6m","call_duration_detail_3m_evening_dial_cnt","power_off_day_avg_item_3m","call_duration_detail_6m_midnight_dialed_cnt","nuisance_avg_call_dial_time_6m","call_duration_detail_3m_noon_total_time","call_duration_detail_6m_afternoon_uniq_num_cnt","call_duration_detail_3m_afternoon_total_cnt","car_firm_call_time_6m","call_duration_detail_6m_morning_dial_cnt","loan_call_cnt_3m","bank_call_dialed_cnt_3m","voice_fee_avg_item_6m","ins_fin_call_time_1m","peer_num_cnt_item_3m","inter_peer_num_6m","ins_fin_call_dialed_time_1m","credit_card_call_time_3m","agency_call_dial_time_3m","nuisance_call_cnt_1m","loan_call_dialed_cnt_6m","contacts_router_cnt","total_fee_item_1m","call_duration_detail_6m_noon_dialed_time","express_call_time_1m","call_cnt_avg_item_3m","night_cnt_item_3m","remote_time_avg_item_6m","fraud_call_time_1m","car_firm_call_time_3m","bank_avg_call_time_6m","call_cnt_item_3m","night_cnt_avg_item_3m","nuisance_call_dial_time_6m","car_firm_call_dialed_time_3m","call_duration_detail_3m_daybreak_total_time","power_off_day_item_6m","call_duration_detail_3m_midnight_dial_time","call_duration_detail_6m_daybreak_total_cnt","agency_call_time_6m","call_time_avg_item_3m","ins_fin_call_dialed_time_3m","fraud_call_time_6m","bank_avg_call_time_3m","call_duration_detail_6m_noon_total_time","call_duration_detail_6m_evening_uniq_num_cnt","remote_time_avg_item_3m","vas_fee_avg_item_3m","car_firm_call_dial_time_6m","carrier_call_dialed_cnt_6m","loan_call_cnt_6m","agency_call_time_1m","call_duration_detail_6m_morning_total_cnt","total_fee_avg_item_6m","cnt_1min_5min_item_6m","max_single_time_item_6m","nuisance_call_cnt_6m","net_fee_avg_item_3m","call_time_item_1m","call_duration_detail_3m_daybreak_dialed_time","credit_card_avg_call_dial_time_3m","agency_call_dialed_time_1m","call_duration_detail_3m_dusk_dial_cnt","peer_num_cnt_item_6m","daytime_cnt_item_1m","call_duration_detail_3m_daybreak_total_cnt","ins_fin_call_cnt_6m","call_duration_detail_6m_dusk_dial_cnt","recharge_amount_item_1m","agency_avg_call_dialed_time_6m","sms_cnt_item_6m","call_duration_detail_6m_daybreak_dial_time","call_duration_detail_6m_morning_dialed_time","arrearage_risk_6m","nuisance_call_dial_time_3m","power_off_day_item_1m","agency_call_time_3m","voice_fee_item_1m","call_duration_detail_6m_evening_dialed_time","sms_cnt_item_3m","max_power_on_day_item_6m","call_duration_detail_3m_noon_total_cnt","loan_avg_call_dialed_time_3m","sms_fee_avg_item_6m","bank_call_dial_cnt_1m","call_duration_detail_3m_noon_dialed_cnt","call_duration_detail_3m_forenoon_uniq_num_cnt","credit_card_call_time_6m","min_single_time_item_6m","max_single_time_item_3m","express_avg_call_dial_time_6m","daytime_cnt_avg_item_6m","agency_call_dialed_time_3m","contacts_class1_cnt","good_friend_num_6m","agency_call_dialed_cnt_1m","ins_fin_call_dialed_time_6m","net_used_avg_item_6m","ins_fin_call_time_6m","call_duration_detail_6m_noon_uniq_num_cnt","nuisance_call_dial_time_1m","call_duration_detail_6m_dusk_dialed_cnt","vas_fee_avg_item_6m","recharge_amount_item_3m","loan_call_time_3m","nuisance_call_dialed_time_6m","phone_gray_score","continue_recharge_month_cnt_item_6m","call_duration_detail_6m_afternoon_dialed_time","call_duration_detail_6m_midnight_dial_cnt","cnt_1min_5min_avg_item_3m","extra_fee_item_3m","call_duration_detail_6m_morning_dial_time","carrier_call_cnt_6m","call_duration_detail_6m_evening_dialed_cnt","call_duration_detail_6m_daybreak_dialed_cnt","call_duration_detail_3m_forenoon_dialed_time","credit_card_avg_call_dial_time_6m","nuisance_call_dialed_cnt_1m","express_call_cnt_3m","no_dial_day_avg_item_3m","ins_fin_call_dialed_cnt_6m","net_fee_avg_item_6m","cnt_1min_5min_item_3m","total_fee_avg_item_3m","loan_call_dial_time_3m","loan_call_dial_cnt_6m","bank_call_time_1m","sms_cnt_avg_item_6m","loan_avg_call_dial_time_6m","credit_card_avg_call_time_3m","bank_call_dialed_time_1m","unpaid_month_cnt_item_6m","max_single_time_item_1m","cnt_10min_over_item_6m","loan_call_time_1m","ins_fin_call_dial_cnt_3m","recharge_amount_item_6m","good_friend_num_3m","special_service_call_time_6m","sms_cnt_avg_item_3m","daytime_time_item_6m","peer_num_cnt_avg_item_3m","express_call_cnt_1m","call_duration_detail_3m_daybreak_dial_time","min_single_time_item_3m","call_duration_detail_3m_morning_dial_time","car_firm_call_dial_time_3m","cnt_5min_10min_item_1m","min_single_time_item_1m","call_duration_detail_3m_noon_uniq_num_cnt","sms_fee_avg_item_3m","agency_call_dial_cnt_6m","dial_cnt_avg_item_3m","nuisance_call_dialed_cnt_3m","carrier_avg_call_dialed_time_6m","no_call_day_item_1m","contacts_class1_blacklist_cnt","extra_fee_item_1m","loan_avg_call_dial_time_3m","110_call_time_6m","net_used_item_3m","lawyer_call_dialed_time_6m","bank_avg_call_dialed_time_6m","loan_call_dial_time_6m","call_duration_detail_3m_afternoon_dial_cnt","sms_fee_item_6m","total_fee_item_3m","call_duration_detail_3m_forenoon_dial_time","net_fee_item_1m","nuisance_call_dialed_time_1m","call_duration_detail_3m_midnight_total_time","bank_call_dialed_time_6m","age.1","call_duration_detail_3m_midnight_total_cnt","no_dial_day_item_6m","bank_call_time_6m","night_cnt_avg_item_6m","call_duration_detail_3m_forenoon_dial_cnt","special_service_call_time_1m","bank_avg_call_dial_time_6m","cnt_10min_over_item_3m","cnt_1min_5min_avg_item_6m","night_cnt_item_6m","net_used_item_1m","peer_loc_cnt_item_6m","call_duration_detail_3m_forenoon_total_time","credit_card_call_cnt_3m","ins_fin_call_dialed_cnt_3m","cnt_5min_10min_item_3m","carrier_call_cnt_3m","call_duration_detail_3m_dusk_uniq_num_cnt","contacts_class2_blacklist_cnt","car_firm_call_time_1m","agency_call_cnt_3m","loan_call_dialed_cnt_1m","dial_cnt_item_6m","carrier_avg_call_dialed_time_3m","agency_avg_call_time_6m","call_duration_detail_3m_morning_dialed_time","call_duration_detail_3m_morning_total_cnt","dial_cnt_avg_item_6m","contact_loan_score","call_duration_detail_3m_afternoon_dialed_time","net_fee_item_3m","call_duration_detail_3m_midnight_dialed_time","call_duration_detail_6m_afternoon_dialed_cnt","peer_loc_cnt_item_3m","bank_avg_call_dialed_time_3m","unpaid_month_cnt_item_3m","net_used_item_6m","credit_card_call_cnt_6m","call_duration_detail_3m_midnight_dial_cnt","call_duration_detail_3m_dusk_total_cnt","110_call_time_3m","no_dial_day_item_3m","loan_call_time_6m","special_service_call_time_3m","dial_cnt_item_3m","loan_call_dialed_cnt_3m","credit_card_avg_call_time_6m","nuisance_call_dialed_time_3m","express_call_time_6m","cnt_1min_5min_item_1m","credit_card_call_dialed_time_6m","is_city_match_friend_city_center_3m","cnt_10min_over_item_1m","call_duration_detail_3m_evening_dial_time","ins_fin_call_dialed_cnt_1m","carrier_call_cnt_1m","agency_call_cnt_1m","total_fee_item_6m","bank_call_time_3m","call_duration_detail_6m_forenoon_total_time","call_duration_detail_3m_morning_uniq_num_cnt","bank_call_dialed_time_3m","credit_card_call_cnt_1m","night_time_item_3m","call_duration_detail_6m_forenoon_dial_cnt","call_duration_detail_3m_dusk_total_time","express_avg_call_dialed_time_3m","call_duration_detail_3m_morning_dial_cnt","call_duration_detail_3m_forenoon_dialed_cnt","bank_call_cnt_1m","carrier_call_dial_time_6m","loan_call_dialed_time_1m","call_duration_detail_6m_midnight_total_time","credit_card_avg_call_cnt_3m","call_duration_detail_3m_daybreak_dial_cnt","local_time_avg_item_3m","sms_fee_item_3m","net_fee_item_6m","call_duration_detail_6m_midnight_dialed_time","no_dial_day_item_1m","friend_num_6m","max_single_recharge_item_1m","express_call_cnt_6m","ins_fin_avg_call_time_6m","car_firm_call_cnt_6m","120_call_time_6m","call_duration_detail_3m_evening_total_time","call_duration_detail_6m_morning_dialed_cnt","ins_fin_avg_call_dialed_time_3m","remote_time_item_1m","credit_card_call_dialed_time_3m","credit_card_call_dial_cnt_6m","agency_avg_call_time_3m","call_duration_detail_3m_evening_total_cnt","call_duration_detail_6m_noon_dial_cnt","live_month_cnt_item_6m","loan_call_dialed_time_3m","ins_fin_avg_call_time_3m","peer_loc_cnt_avg_item_3m","dial_time_item_6m","dial_cnt_item_1m","call_duration_detail_6m_forenoon_dialed_cnt","fraud_call_dialed_time_6m","call_duration_detail_6m_daybreak_total_time","dial_time_avg_item_6m","cnt_5min_10min_avg_item_6m","call_duration_detail_6m_afternoon_total_cnt","credit_card_call_dial_cnt_3m","night_time_item_6m","max_single_recharge_item_3m","call_duration_detail_6m_morning_total_time","call_duration_detail_6m_afternoon_dial_cnt","nuisance_call_dialed_cnt_6m","call_duration_detail_6m_evening_dial_time","peer_loc_cnt_avg_item_6m","call_duration_detail_3m_noon_dial_time","credit_card_call_dialed_time_1m","bank_avg_call_dial_time_3m","peer_num_cnt_avg_item_6m","cnt_1min_within_item_6m","nuisance_avg_call_dialed_time_6m","no_call_day_item_6m","vas_fee_item_6m","cnt_5min_10min_avg_item_3m","ins_fin_call_dial_time_6m","call_duration_detail_6m_afternoon_total_time","no_call_day_avg_item_6m","remote_cnt_avg_item_6m","daytime_time_item_3m","nuisance_avg_call_cnt_3m","gender","call_duration_detail_3m_daybreak_uniq_num_cnt","remote_cnt_item_6m","ins_fin_avg_call_dialed_time_6m","loan_call_dialed_time_6m","car_firm_call_dialed_cnt_6m","continue_power_off_cnt_item_6m","dial_time_avg_item_3m","call_duration_detail_3m_morning_dialed_cnt","dial_time_item_3m","bank_call_dial_cnt_6m","call_duration_detail_6m_dusk_uniq_num_cnt","call_duration_detail_6m_evening_total_cnt","call_duration_detail_6m_midnight_uniq_num_cnt","nuisance_call_dial_cnt_6m","no_dial_day_avg_item_6m","night_time_item_1m","loan_call_dial_time_1m","extra_fee_item_6m","daytime_time_item_1m","call_duration_detail_6m_dusk_total_cnt","110_call_cnt_3m","call_day_item_1m","express_avg_call_dialed_time_6m","cnt_1min_within_avg_item_6m","ins_fin_call_dial_cnt_6m","call_duration_detail_6m_afternoon_dial_time","no_call_day_item_3m","sms_fee_item_1m","bank_call_cnt_3m","bank_call_dial_cnt_3m","call_duration_detail_3m_dusk_dialed_cnt","call_duration_detail_3m_evening_uniq_num_cnt","cnt_1min_within_item_3m","no_call_day_avg_item_3m","express_call_dial_time_6m","dial_time_item_1m","remote_cnt_avg_item_3m","credit_card_call_dial_time_1m","local_time_item_3m","local_cnt_avg_item_3m","extra_fee_avg_item_3m","loan_call_dial_cnt_1m","express_call_dialed_cnt_1m","contacts_router_ratio","call_duration_detail_3m_afternoon_uniq_num_cnt","credit_card_avg_call_dialed_time_3m","searched_org_cnt","bank_call_dial_time_3m","call_duration_detail_6m_midnight_dial_time","agency_avg_call_dialed_time_3m","nuisance_call_time_1m","nuisance_avg_call_dialed_time_3m","ins_fin_call_cnt_3m","carrier_avg_call_time_6m","call_duration_detail_6m_forenoon_dialed_time","call_duration_detail_3m_midnight_dialed_cnt","agency_avg_call_dial_time_3m","carrier_call_time_6m","cnt_1min_within_item_1m","remote_cnt_item_3m","cnt_10min_over_avg_item_3m","credit_card_call_dialed_cnt_3m","ins_fin_call_dial_time_3m","voice_fee_item_6m","vas_fee_item_3m","call_duration_detail_6m_noon_dial_time","nuisance_call_dial_cnt_3m","loan_avg_call_dialed_time_6m","local_cnt_item_6m","call_duration_detail_3m_dusk_dialed_time","call_duration_detail_6m_noon_dialed_cnt","carrier_call_dialed_time_6m","car_firm_call_cnt_1m","carrier_call_dialed_cnt_3m","credit_card_call_dial_time_3m","max_power_on_day_item_3m","continue_power_off_cnt_item_3m","loan_call_dial_cnt_3m","remote_time_item_6m","carrier_avg_call_time_3m","loan_avg_call_time_3m","credit_card_call_dialed_cnt_6m","express_call_dialed_cnt_3m","express_call_dial_time_3m","bank_call_dial_time_1m","call_duration_detail_6m_morning_uniq_num_cnt","local_cnt_item_3m","voice_fee_item_3m","bank_call_cnt_6m","car_firm_call_dial_cnt_3m","railway_airway_call_time_6m","cnt_1min_within_avg_item_3m","net_used_avg_item_3m","nuisance_call_time_3m","vas_fee_item_1m","credit_card_avg_call_dialed_time_6m","call_duration_detail_6m_evening_dial_cnt","agency_call_dialed_time_6m","express_call_dial_cnt_6m","ins_fin_call_dial_time_1m","nuisance_call_dial_cnt_1m","remote_cnt_item_1m","call_cnt_item_1m","recharge_amount_avg_item_6m","cnt_10min_over_avg_item_6m","call_time_item_3m","nuisance_call_time_6m","express_call_dial_time_1m","express_avg_call_time_6m","max_power_on_day_item_1m","credit_card_call_dial_cnt_1m","car_firm_call_cnt_3m","express_call_dialed_time_1m","call_duration_detail_6m_daybreak_uniq_num_cnt","call_duration_detail_3m_midnight_uniq_num_cnt","call_duration_detail_6m_evening_total_time","call_duration_detail_6m_forenoon_dial_time","local_cnt_item_1m","express_call_dial_cnt_1m","carrier_call_time_1m","friend_num_3m","carrier_call_dialed_time_1m","nuisance_avg_call_time_6m","call_duration_detail_6m_noon_total_cnt","local_time_item_6m","local_time_avg_item_6m","agency_call_dial_time_1m","power_off_day_avg_item_6m","credit_card_call_dial_time_6m","local_cnt_avg_item_6m","agency_call_dialed_cnt_6m","call_duration_detail_3m_dusk_dial_time","call_duration_detail_6m_daybreak_dial_cnt","bank_call_dial_time_6m","bank_call_dialed_cnt_1m","car_firm_call_dialed_time_6m","night_time_avg_item_6m","extra_fee_avg_item_6m","call_duration_detail_6m_dusk_total_time","call_duration_detail_3m_noon_dialed_time","local_time_item_1m","call_duration_detail_3m_morning_total_time","car_firm_call_dial_cnt_6m","call_duration_detail_3m_evening_dialed_cnt","express_call_dialed_time_3m","express_call_dial_cnt_3m","carrier_call_dialed_time_3m","call_duration_detail_6m_forenoon_total_cnt","call_duration_detail_3m_noon_dial_cnt","carrier_call_time_3m","max_single_recharge_item_6m","call_duration_detail_6m_dusk_dial_time","remote_time_item_3m","call_duration_detail_3m_evening_dialed_time","call_time_item_6m","ins_fin_call_cnt_1m","loan_avg_call_time_6m","recharge_amount_avg_item_3m","loan_avg_call_cnt_3m","call_duration_detail_3m_daybreak_dialed_cnt","credit_card_call_dialed_cnt_1m","express_call_dialed_cnt_6m","nuisance_avg_call_time_3m","call_duration_detail_6m_daybreak_dialed_time"
        };
        return arr;
    }
}
